home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Workbench Add-On
/
Workbench Add-On - Volume 1.iso
/
Dev
/
Oberon
/
texts
/
SymbolFileFormat.txt
< prev
next >
Wrap
Text File
|
1995-07-02
|
3KB
|
71 lines
$RCSfile: SymbolFileFormat.txt $
Description: Symbol file format used by Oberon-A
Created by: fjc (Frank Copeland)
$Revision: 1.5 $
$Author: fjc $
$Date: 1995/07/02 17:07:04 $
Copyright © 1994, Frank Copeland.
This file is part of Oberon-A.
See Oberon-A.doc for conditions of use and distribution.
________________________________________________________________________
INTRODUCTION
This document describes the symbol file format used by Oberon-A.
SYMBOL FILE FORMAT
SymTag = 53594D09H; (* "SYM" + version # *)
(* structure forms *)
Undef * = 0H; Byte * = 1H; Bool * = 2H; Char * = 3H; SInt * = 4H;
Int * = 5H; LInt * = 6H; Real * = 7H; LReal * = 8H; BSet * = 9H;
WSet * = 0AH; Set * = 0BH; String * = 0CH; NilTyp * = 0DH;
NoTyp * = 0EH; PtrTyp * = 0FH; CPtrTyp * = 10H; BPtrTyp * = 11H;
Word * = 12H; Longword * = 13H; TypeTag * = 14H;
(* terminal symbols for symbol file elements *)
eUndef = 0H; eCon = 1H; eTypE = 2H; eTyp = 3H; eVar = 4H; eXProc = 5H;
eLibCall = 6H; eM2Proc = 7H; eCProc = 8H; eAProc = 9H; ePointer = 0AH;
eProcTyp = 0BH; eArray = 0CH; eDynArr = 0DH; eRecord = 0EH;
eParList = 0FH; eValPar = 10H; eVarPar = 11H; eVarArg = 12H;
eFldList = 13H; eFld = 14H; eHPtr = 15H; eHProc = 16H; eTProcE = 17H;
eTProc = 18H; eFixup = 19H; eMod = 1AH; eExtLib = 1BH; eCallBack = 1CH;
eCBackTyp = 1DH;
SymbolFile = SymTag:4 modAnchor {element}.
modAnchor = eMod key:4 name.
element = eCon constant
| (eTypE | eTyp) ref mno name
| (eVar | eFld) ref offset visible name
| (eValPar | eVarPar) ref offset name
| eParList {element}
( (eXProc | eCallBack) ref
| (eLibCall | eTProcE) ref ref offset
| (eM2Proc | eCProc | eAProc) ref name
| eLibCall2 ref offset offset )
name
| ePointer ref mno sysflg dscadr
| eParList {element} (eProcTyp | eCBackTyp) ref mno
| eArray ref mno size bndadr nofel
| eDynArr ref mno size lenoff
| eFldList {element} eRecord ref mno size sysflg dscadr
| eHPtr offset
| eTProc ref offset
| eFixup ref ref
| eExtLib name
| modAnchor.
constant = (Byte | Bool | Char | SInt | SSet) val name
| (Int | Set) val name
| (LInt | Real | LReal | LSet) val name
| String sadr len [char] name
| Nil name.
name = {char} 0X